home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / Z-Misc Series / (k)zk.d64 / txt.select input < prev    next >
Text File  |  2007-03-01  |  3KB  |  171 lines

  1. ╧╬ ╙┼╠┼├╘ ╔╬╨╒╘
  2.  
  3. BY ─ICK ╦LINGENS
  4. ─UTCH ├╧═┴╠ ╒SERS ╟ROUP
  5.  
  6. ╘HE ╙┼╠┼├╘ ╔╬╨╒╘ COMMAND IS A VERY
  7. POWERFULL ONE.
  8.  
  9. ╧F COURSE IT CAN BE USED TO PERFORM
  10. BATCH FILE EXECUTION IN COMMAND MODE.
  11. ┬UT IT CAN ALSO BE USED WITH AN ╔╬╨╒╘
  12. FILE FOR NORMAL ╔╬╨╒╘ STATEMENTS, AS
  13. IS DONE BELOW.
  14.  
  15. // FIRST CREATE A SMALL BATCH FILE:
  16. //
  17. ╧╨┼╬ ╞╔╠┼ 9,"BAT.INPUT",╫╥╔╘┼
  18. ╨╥╔╬╘ ╞╔╠┼ 9:"├╧═┴╠"
  19. ├╠╧╙┼ ╞╔╠┼ 9
  20. //
  21. ╙┼╠┼├╘ ╔╬╨╒╘ "BAT.INPUT"
  22. ╔╬╨╒╘ "═Y FAVOURITE LANGUAGE:": NAM$
  23. ╨╥╔╬╘ NAM$
  24. ╙┼╠┼├╘ ╔╬╨╒╘ "DS:"
  25.  
  26. ╧N THE SCREEN WE FIND:
  27.  
  28.   ═Y FAVOURITE LANGUAGE: ├╧═┴╠
  29.  
  30. AS IF THE INPUT WAS DONE FROM THE
  31. KEYBOARD.
  32.  
  33. ╔ USED THIS PROCESS TO TEST LOADING
  34. PROGRAMS (SOMETIMES ╔ FIND MY BACKUP
  35. COPIES ARE NOT BACKUPPED WELL).
  36.  
  37. ╚OWEVER AFTER ╥╒╬, ├╧═┴╠ ITSELF
  38. CLOSES ALL OPEN FILES, THE ╔╬╨╒╘ FILE
  39. AS WELL. ╙O ╔ HAD TO USE A TRICK:
  40. 'THE PERFORM THE IMPOSSIBLE
  41. PROCEDURE' (DESCRIBED LATER).
  42.  
  43. ═Y PROGRAM LOOKS AS FOLLOWS:
  44.  
  45. TEST
  46. //
  47. ╨╥╧├ TEST
  48.  READ'DIRECTORY
  49.  LOAD'PROGRAMS
  50. ┼╬─╨╥╧├ TEST
  51. //
  52. ╨╥╧├ READ'DIRECTORY
  53.  ╙┼╠┼├╘ ╧╒╘╨╒╘ "DIR.TEMP"
  54.  ─╔╥ "*=PRG"
  55.  // ALL PRG TYPE FILE NAMES ARE
  56.  // STORED NOW
  57.  ╙┼╠┼├╘ ╧╒╘╨╒╘ "DS:"
  58. ┼╬─╨╥╧├ READ'DIRECTORY
  59.  
  60. ╞IRST ╔ WROTE THE ╠╧┴─'╨╥╧╟╥┴═╙
  61. PROCESS ONLY TO ╙┼┼ THE STORED FILE
  62. NAMES:
  63.  
  64. ╨╥╧├ LOAD'PROGRAMS
  65.  ╙┼╠┼├╘ ╔╬╨╒╘ "DIR.TEMP"
  66.  ╔╬╨╒╘ "": DUMMY$ //       DISK NAME
  67.  ╔╬╨╒╘ "": FILNAM$
  68.  ENDDIR:="BLOCKS" ╔╬ FILNAM$
  69.  ╫╚╔╠┼ ╬╧╘ ENDDIR ─╧
  70.   FILNAM$:=FILNAM$(7:23)
  71.   // FILENAME INCLUDES BOTH " AND "
  72.   //
  73.   ╨╥╔╬╘ FILNAM$ //               (*)
  74.   //
  75.   ╔╬╨╒╘ "":FILNAM$ //      NEXT NAME
  76.   ENDDIR:="BLOCKS" ╔╬ FILNAM$
  77.  ┼╬─╫╚╔╠┼
  78.  ╙┼╠┼├╘ ╔╬╨╒╘ "DS:"
  79. ┼╬─╨╥╧├ LOAD'PROGRAMS
  80.  
  81. ╘HE PROGRAM LINE MARKED WITH (*) NOW
  82. HAS TO BE CHANGED SO PROGRAM LOADING
  83. CAN BE DONE.
  84.  
  85. ╚ERE WE USE THE 'PERFORM THE ...'
  86. PROCEDURE:
  87.  
  88. ╨╥╧├ EXEQ(COMMAND$) ├╠╧╙┼─
  89.  LENGTH:=╠┼╬(COMMAND$)
  90.  ╞╧╥ X:=1 ╘╧ LENGTH ─╧
  91.   ╨╧╦┼ $C000+X-1, ╧╥─(COMMAND$(X))
  92.  ┼╬─╞╧╥ X
  93.  ╨╧╦┼ $C866, $00
  94.  ╨╧╦┼ $C867, $C0
  95.  ╨╧╦┼ $C865, LENGTH
  96.  ╙╘╧╨ ""
  97. ┼╬─╨╥╧├ EXEQ
  98.  
  99. ┬UT ╠╧┴─╔╬╟ THE PROGRAM AND READING
  100. THE NEXT FILENAME MUST BE DONE OVER
  101. AND OVER AGAIN. 
  102.  
  103. ╙O WRITE A PROCEDURE TO DO THAT (SOME
  104. KIND OF AN ┼╪╘┼╥╬┴╠ PROCEDURE) CALLED
  105. WITH:
  106.  
  107.    CMND$:="╠╧┴─ ""TEST.EXTERN"" "13""
  108.    CMND$:+"╥╒╬ "13""
  109.    EXEQ(CMND$)
  110.  
  111. ╘HESE LINES ARE SUBSTITUDED FOR THE
  112. (*) MARKED LINE ABOVE.
  113.  
  114. ╘HE PROGRAM ╘┼╙╘.┼╪╘┼╥╬ CALLS ITSELF
  115. EACH TIME AFTER THE (CORRECT OR
  116. INCORRECT) LOADING OF A PROGRAM WITH
  117. THE INPUTTED ╞╔╠╬┴═$.
  118.  
  119. // PROGRAM: TEST.EXTERN
  120. //
  121. TEST
  122. //
  123. ╨╥╧├ TEST
  124.   LOAD'PROGRAMS
  125.   // AND BACK TO THE MAIN PROGRAM
  126.   // WITH
  127.   ├╚┴╔╬ "TEST LOAD"
  128. ┼╬─╨╥╧├ TEST
  129. //
  130. ╨╥╧├ LOAD'PROGRAMS
  131.  ╔╬╨╒╘ "": FILNAM$
  132.  //
  133.  // ╘HE ╔╬╨╒╘ IS DONE FROM THE 
  134.  // ╔╬╨╒╘ FILE THAT REMAINS ╧╨┼╬
  135.  // DURING THE WHOLE TEST OPERATION
  136.  //
  137.  ENDDIR:="BLOCKS" ╔╬ FILNAM$
  138.  ╫╚╔╠┼ ╬╧╘ ENDDIR ─╧
  139.   CMND$:="╠╧┴─ "+FILNAM$+""13""
  140.   //
  141.   // AND IF ONE WANTS TO:
  142.   //
  143.   // CMND$:+"╠╔╙╘ "13""
  144.   //
  145.   CMND$:+"╠╧┴─ ""TEST.EXTERN"" "13""
  146.   CNMD$:+"╥╒╬ "13""
  147.   //
  148.   EXEQ(CMND$) //    EXECUTE COMMANDS
  149.   //
  150.   // ╘HE FOLLOWING PROGRAM LINES
  151.   // ARE NOT EXECUTED, BUT SERVE
  152.   // ONLY PROGRAM CORRECTNESS.
  153.   //
  154.   ╔╬╨╒╘ "":FILNAM$
  155.   ENDDIR:="BLOCKS" ╔╬ FILNAM$
  156.  ┼╬─╫╚╔╠┼
  157.  ╙┼╠┼├╘ ╔╬╨╒╘ "DS:"
  158. ┼╬─╨╥╧├ LOAD'PROGRAMS
  159.  
  160. ╧F COURSE THE PROCEDURE ┼╪┼╤ MUST BE
  161. ADDED TO BOTH PROGRAMS.
  162.  
  163. ┬OTH PROGRAMS ARE ON DISK, ╘┼╙╘ ╠╧┴─
  164. AND ╘┼╙╘.┼╪╘┼╥╬.
  165.  
  166. ╥EMARK:
  167.  
  168. ╘HE ╔╬╨╒╘ FILE IS CLOSED BY THE ├╚┴╔╬
  169. COMMAND AFTER ALL TESTS HAVE BEEN
  170. DONE.
  171.